package ru.ganyaev.vm_manager;

import java.util.List;

import ru.ganyaev.external_process.ExternalProcessResult;

public abstract class VirtualMachine {
    public abstract String getName();

    public abstract void start() throws VirtualMachineException;

    public abstract void stop() throws VirtualMachineException;

    public abstract void reset() throws VirtualMachineException;

    public abstract void copyFileToGuest(String hostPath, String guestPath)
            throws VirtualMachineException;

    public abstract void copyFileFromGuest(String guestPath, String hostPath)
            throws VirtualMachineException;

    public abstract ExternalProcessResult runProcess(String processName,
            List<String> arguments) throws VirtualMachineException;

    public abstract void runProcessImmediately(String processName,
            List<String> arguments) throws VirtualMachineException;
}
